iNZight, Surveys, and the IDI

Tom Elliott

Department of Statistics Seminar
2 June, 2021

Updates

iNZight main window

  • package!
  • GUI for visually exploring data
  • easy-to-learn tool for students/beginners …
  • … but also non-beginners!

  • package!
  • GUI for visually exploring data
  • easy-to-learn tool for students/beginners …
  • … but also non-beginners!
  • bridge between GUI and coding

Data

GUI

Explore

Save script

Part II

The development of iNZight

Chris Wild

UoA statistics students

gWidgets2 + gWidgets2RGtk2 RGtk2 GTK

† John Verzani ‡ Michael Lawrence

Started off small

  • a feature here …
  • a module there …

… et voilà: a rewrite was needed!

What makes Version 2+ better?

  • Object Oriented Programming (OOP)
  • Separability
  • Reactivity
  • Extensibility

Object Oriented Programming

  • each component of the UI is represented by a class

iNZight main window

iNZight main window

Object Oriented Programming

  • each component of the UI is represented by a class
  • classes have properties (“fields”) and methods
  • Reference Classes (RC) and R6

Demo Load Window

Separability

  • keep UI and data logic separate
  • Desktop and Shiny versions use the same data logic
  • UI inputs control arguments to a single function
  • existing or new wrapper for another package

Reactivity

  • Instant feedback
  • Makes exploring data faster and easier
  • Widget handlers
    Change, keystroke, click, mouseover, focus, …

Extensibility

  • Foresight and planning
  • Add new or change existing features …
  • … without rewriting everything!
  • OOP: add new classes, inheritance, …
  • Separability: new field = new argument
    everything else unchanged
  • In progress: a system for adding completely new modules

path/to/iNZightVIT/modules

  • DemoModule.R

iNZight main window

path/to/iNZightVIT/modules

  • DemoModule.R

iNZight main window

Thank you

Slides: bit.ly/iNZightSatRday